home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / libblas / tbmv.z / tbmv
Encoding:
Text File  |  2002-10-03  |  6.8 KB  |  162 lines

  1. TBMV(3F)                                              Last changed: 11-2-98
  2.  
  3.  
  4. NNAAMMEE
  5.      SSTTBBMMVV, DDTTBBMMVV, CCTTBBMMVV, ZZTTBBMMVV - Multiplies a real or complex vector by a
  6.      real or complex triangular band matrix
  7.  
  8. SSYYNNOOPPSSIISS
  9.      Real
  10.  
  11.         CCAALLLL SSTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
  12.  
  13.      Double precision
  14.  
  15.         CCAALLLL DDTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
  16.  
  17.      Complex
  18.  
  19.         CCAALLLL CCTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
  20.  
  21.      Double complex
  22.  
  23.         CCAALLLL ZZTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
  24.  
  25. IIMMPPLLEEMMEENNTTAATTIIOONN
  26.      IRIX systems
  27.  
  28. DDEESSCCRRIIPPTTIIOONN
  29.      SSTTBBMMVV and DDTTBBMMVV multiply a real vector by a real triangular band
  30.      matrix.
  31.  
  32.      CCTTBBMMVV and ZZTTBBMMVV multiply a complex vector by a complex triangular band
  33.      matrix.
  34.  
  35.      These routines perform one of the following matrix-vector operations:
  36.  
  37.           _x <- _A_x
  38.                 _T
  39.           _x <- _A _x
  40.                 _H
  41.           _x <- _A _x (CCTTBBMMVV and ZZTTBBMMVV only)
  42.             _T                         _H
  43.      where _A  is the transpose of _A, _A  is the conjugate transpose of _A, _x
  44.      is an _n-element vector, and _A may be either a unit or nonunit _n-by-_n
  45.      upper or lower triangular band matrix with (_k+1) diagonals.
  46.  
  47.      These routines have the following arguments:
  48.  
  49.      _u_p_l_o      Character*1.  (input)
  50.                Specifies whether the matrix is upper or lower triangular,
  51.                as follows:
  52.  
  53.                _u_p_l_o = 'U' or 'u':  _A is an upper triangular matrix.
  54.                _u_p_l_o = 'L' or 'l':  _A is a lower triangular matrix.
  55.  
  56.      _t_r_a_n_s     Character *1.  (input)
  57.                Specifies the operation to be performed, as follows:
  58.  
  59.                _t_r_a_n_s = 'N' or 'n':  _x <- _A_x
  60.                                           _T
  61.                _t_r_a_n_s = 'T' or 't':  _x <- _A _x
  62.                                           _T
  63.                _t_r_a_n_s = 'C' or 'c':  _x <- _A _x (SSTTBBMMVV, DDTTBBMMVV),
  64.                         _H
  65.                or _x <- _A _x (CCTTBBMMVV, ZZTTBBMMVV)
  66.  
  67.      _d_i_a_g      Character *1.  (input)
  68.                Specifies whether _A is unit triangular, as follows:
  69.  
  70.                _d_i_a_g = 'U' or 'u':  _A is assumed to be unit triangular.
  71.                _d_i_a_g = 'N' or 'n':  _A is not assumed to be unit triangular.
  72.  
  73.      _n         Integer.  (input)
  74.                Specifies the order of matrix _A.  _n >= 0.
  75.  
  76.      _k         Integer.  (input)
  77.  
  78.                _u_p_l_o = 'U' or 'u':  _k specifies the number of superdiagonals
  79.                of matrix _A.
  80.                _u_p_l_o = 'L' or 'l':  _k specifies the number of subdiagonals
  81.                of matrix _A.
  82.  
  83.                _k >= 0.
  84.  
  85.      _a         Array of dimension (_l_d_a,_n).  (input)
  86.                SSTTBBMMVV: Real array.
  87.                DDTTBBMMVV: Double precision array.
  88.                CCTTBBMMVV: Complex array.
  89.                ZZTTBBMMVV: Double complex array.
  90.  
  91.                Before entry with _u_p_l_o = 'U' or 'u', the leading (_k+1)-by-_n
  92.                upper part of array _a must contain the upper triangular band
  93.                part of the matrix of coefficients, supplied
  94.                column-by-column, with the leading diagonal of the matrix in
  95.                row (_k+1) of the array, the first superdiagonal starting at
  96.                position 2 in row _k, and so on.  The top left _k-by-_k
  97.                triangle of array _a is not referenced.
  98.  
  99.                Before entry with _u_p_l_o = 'L' or 'l', the leading (_k+1)-by-_n
  100.                part of array _a must contain the lower triangular band part
  101.                of the matrix of coefficients, supplied column-by-column,
  102.                with the leading diagonal of the matrix in row 1 of the
  103.                array, the first subdiagonal starting at position 1 in row
  104.                2, and so on.  The bottom right _k-by-_k triangle of array _a
  105.                is not referenced.
  106.  
  107.                See the NOTES section for examples of Fortran code that
  108.                transfer upper and lower triangular band matrices from
  109.                conventional full matrix storage to band storage.
  110.  
  111.                When _d_i_a_g = 'U' or 'u', these routines assume that all
  112.                elements of the array _a that represent diagonal elements of
  113.                the matrix _A are 1.  In this case, neither of these routines
  114.                will reference any of the diagonal elements.
  115.  
  116.      _l_d_a       Integer.  (input)
  117.                Specifies the first dimension of _a as declared in the
  118.                calling program.  _l_d_a >= (_k+1).
  119.  
  120.      _x         Array of dimension 1+(_n-1) * |_i_n_c_x|.  (input and output)
  121.                SSTTBBMMVV: Real array.
  122.                DDTTBBMMVV: Double precision array.
  123.                CCTTBBMMVV: Complex array.
  124.                ZZTTBBMMVV: Double complex array.
  125.                Contains the vector _x.  On exit, the transformed vector
  126.                overwrites array _x.
  127.  
  128.      _i_n_c_x      Integer.  (input)
  129.                Specifies the increment for the elements of _x.  _i_n_c_x must
  130.                not be 0.
  131.  
  132. NNOOTTEESS
  133.      The following program segment transfers an upper triangular band
  134.      matrix from conventional full matrix storage to band storage:
  135.  
  136.               DO 20, J = 1, N
  137.                  M = K + 1 - J
  138.                  DO 10, I = MAX( 1, J - K ), J
  139.                     A( M + I, J ) = MATRIX( I, J )
  140.           10     CONTINUE
  141.           20  CONTINUE
  142.      The following program segment transfers a lower triangular band matrix
  143.      from conventional full matrix storage to band storage:
  144.  
  145.               DO 20, J = 1, N
  146.                  M = 1 - J
  147.                  DO 10, I = J, MIN( N, J + K )
  148.                     A( M + I, J ) = MATRIX( I, J )
  149.           10     CONTINUE
  150.           20  CONTINUE
  151.  
  152.      SSTTBBMMVV, DDTTBBMMVV, CCTTBBMMVV and ZZTTBBMMVV are Level 2 Basic Linear Algebra
  153.      Subprograms (Level 2 BLAS).
  154.  
  155.      When working backward (_i_n_c_x < 0), each routine starts at the end of
  156.      the vector and moves backward, as follows:
  157.  
  158.           _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)), ..., _x(1)
  159.  
  160. SSEEEE AALLSSOO
  161.      This man page is available only online.
  162.